0 | 0 | 0 | D0 | -D0 | 0 | 0 | 1 | 0 | D1 | -D1 | 0 | 1 | 0 | 0 | D2 | -D2 | 0 | 1 | 1 | 0 | D3 | -D3 | 1 | 0 | 0 | 0 | D4 | -D4 | 1 | 0 | 1 | 0 | D5 | -D5 | 1 | 1 | 0 | 0 | D6 | -D6 | 1 | 1 | 1 | 0 | D7 | -D7 |
Затримки вихідного сигналу мультиплексора по входах керуючого (адресного) коду приблизно в два рази перевищують затримки логічних елементів, а з інформаційних входів - приблизно в півтора рази. Точні величини затримок треба дивитися в довідниках. 1.3 ПЗУ Пам'ять - це завжди дуже складна структура, що включає в себе безліч елементів. Щоправда, внутрішня структура пам'яті - регулярна, більшість елементів однакові, зв'язку між елементами порівняно прості, тому функції, виконувані мікросхемами пам'яті, не надто складні. Пам'ять призначена для запам'ятовування, зберігання якихось масивів інформації, простіше кажучи, наборів, таблиць, груп цифрових кодів. Кожен код зберігається в окремому елементі пам'яті, званому осередком пам'яті. Основна функція будь-якої пам'яті якраз і полягає у видачі цих кодів на виходи мікросхеми за зовнішнім запитом. А основний параметр пам'яті - це її обсяг, тобто кількість кодів, які можуть в ній зберігатися, і розрядність цих кодів. Принцип організації пам'яті записується таким чином: спочатку пишеться кількість осередків, а потім через знак множення (косий хрест) - розрядність коду, що зберігається в одній комірці. Наприклад, організація пам'яті 64Кх8 означає, що пам'ять має 64К (тобто 65536) осередків і кожна комірка - восьмирозрядний. У залежності від способу занесення (записи) інформації і від способу її збереження, мікросхеми пам'яті розділяються на наступні основні типи: Постійна пам'ять (ПЗУ - постійне запам'ятовуючий пристрій, ROM - Read Only Memory - пам'ять тільки для читання), в яку інформація заноситься один раз на етапі виготовлення мікросхеми. Така пам'ять називається ще масковим ПЗУ. Інформація в пам'яті не пропадає при виключенні її живлення, тому її ще називають незалежною пам'яттю. Програмована постійна пам'ять (ППЗУ - програмований ПЗУ, PROM - Programmable ROM), в яку інформація може заноситися користувачем за допомогою спеціальних методів (обмежене число разів). Інформація в ППЗУ теж не пропадає при виключенні її харчування, тобто вона також енергонезалежна. Оперативна пам'ять (ОЗП - оперативний запам'ятовуючий пристрій, RAM - Random Access Memory - пам'ять з довільним доступом), запис інформації до якої найбільш проста і може здійснюватися користувачем скільки завгодно разів протягом усього терміну служби мікросхеми. Інформація в пам'яті пропадає при виключенні її живлення.
Існує безліч проміжних типів пам'яті, а також безліч підтипів, але зазначені - найголовніші, принципово відрізняються один від одного. Хоча, різниця між ПЗУ і ППЗУ з точки зору розробника цифрових пристроїв, як правило, не так вже й велика. Тільки в окремих випадках, наприклад, при використанні так званої флеш-пам'яті (flash-memory), що представляє собою ППЗУ з багаторазовим електричним стиранням і перезаписом інформації, ця різниця справді надзвичайно важлива. Можна вважати, що флеш-пам'ять займає проміжне положення між ОЗУ і ПЗУ. У загальному випадку будь-яка мікросхема пам'яті має наступні інформаційні висновки: Адресні висновки (вхідні), що утворюють шину адреси пам'яті. Код на адресних лініях представляє собою двійковий номер комірки пам'яті, до якої відбувається звернення в даний момент. Кількість адресних розрядів визначає кількість комірок пам'яті: при кількості адресних розрядів n кількість осередків пам'яті одно 2n. Висновки даних (вихідні), що утворюють шину даних пам'яті. Код на лініях даних являє собою вміст тієї комірки пам'яті, до якої виробляється звернення в даний момент. Кількість розрядів даних визначає кількість розрядів всіх елементів пам'яті (зазвичай воно буває рівним 1, 4, 8, 16). Як правило, виходи даних мають тип вихідного каскаду ОК або 3С. У разі оперативної пам'яті, крім вихідний шини даних, може бути ще й окрема вхідна шина даних, на яку подається код, записується у вибрану комірку пам'яті. Інший можливий варіант - поєднання вхідний і вихідний шин даних, тобто двунаправленная шина, напрямок передачі інформації за якою визначається керуючими сигналами. Двонаправлена шина застосовується зазвичай при кількості розрядів шини даних 4 або більше. Керуючі висновки (вхідні), які визначають режим роботи мікросхеми. У більшості випадків у пам'яті є вхід вибору мікросхеми CS (їх може бути кілька, об'єднаних за функції І). У оперативної пам'яті також обов'язково є вхід запису WR, активний рівень сигналу на якому переводить мікросхему в режим запису.
ППЗУ діляться на репрограмміруемие або перепрограмувальні ПЗУ (РПЗУ, EPROM - Erasable Programmable ROM), тобто допускають стирання і перезапис інформації, і одноразово програмовані ПЗУ. У свою чергу, РПЗУ діляться на ПЗП, інформація в яких стирається електричними сигналами (EEPROM - Electrically Erasable Programmable ROM), і на ПЗП, інформація в яких стирається ультрафіолетовим випромінюванням через спеціальне прозоре віконце в корпусі мікросхеми (власне EPROM - Erasable Programmable ROM). Запис інформації в будь-які ППЗУ проводиться за допомогою подачі певних послідовностей електричних сигналів (як правило, підвищеної напруги) на висновки мікросхеми. Розрізняються мікросхеми постійної пам'яті своїм обсягом (від 32 байт до 8 Мбайт і більше), організацією (зазвичай кількість розрядів даних буває 4, 8 або 16), способами управління (призначенням керуючих сигналів), типами вихідних каскадів (зазвичай ОК або 3С), швидкодією (зазвичай затримка складає від одиниць до сотень наносекунд). Але суть усіх мікросхем ПЗУ залишається однією і тією ж: є шина адреси, на яку треба подавати код адреси потрібної комірки пам'яті, є шина даних, на яку видається код, записаний у адресується комірці, і є входи керування, які дозволяють або забороняють видачу інформації з адресується осередки на шину даних. На рис. 1.3.1 представлені для прикладу кілька найпростіших і типових мікросхем постійної пам'яті. Малюнок 1.3.1 - Приклади мікросхем ППЗУ вітчизняного виробництва Мікросхема К155РЕ3 (аналог - N8223N) представляє собою одноразово програмована ППЗУ з організацією . Вихідний стан (до програмування) - всі біти всіх осередків нульові. Для програмування (запису інформації) використовується спеціальний програматор, що подає на розряди даних імпульси високої напруги. Тип вихідних каскадів - відкритий колектор, тобто обов'язково треба включати на виходах резистори, під'єднані до шини живлення. Є один керуючий вхід-CS, при позитивному рівні сигналу на якому на всіх виходах встановлюються одиниці. Основні тимчасові характеристики мікросхем ПЗУ - це дві величини затримки. Затримка вибірки адреси пам'яті - час від установки вхідного коду адреси до установки вихідного коду даних. Затримка вибірки мікросхеми - час від установки активного дозволяє керуючого сигналу CS до установки вихідного коду даних пам'яті. Затримка вибірки мікросхеми звичайно в кілька разів менше затримки вибірки адреси. Вміст ПЗУ звичайно зображується у вигляді спеціальної таблиці, званої картою прошивки пам'яті. У таблиці відображається вміст всіх елементів пам'яті, причому в кожному рядку записується вміст 16 (або 32) послідовно що йдуть (при наростанні коду адреси) осередків. При цьому, як правило, використовується 16-річне кодування. 1.4 мікропрограмного автомата на ПЗУ На основі мікропрограмних автоматів можна будувати пристрої, які працюють за досить складним алгоритмам, виконують різні функції, які визначаються вхідними сигналами, видають складні послідовності вихідних сигналів. При цьому алгоритм роботи мікропрограмного автомата може бути легко змінений заміною прошивки ПЗУ. На відміну від пристроїв на "жорсткою" логікою, принцип роботи яких однозначно визначається використовуваними елементами і способом їх з'єднання, мікропрограмні автомати за допомогою однієї і тієї ж схеми можуть виконувати самі різні функції. Тобто вони набагато гнучкіші, ніж схеми на "жорсткою" логікою. До того ж проектувати мікропрограмні автомати з точки зору схемотехніки досить просто. Недоліком будь-якого мікропрограмного автомата у порівнянні зі схемами на "жорсткою" логікою є менше граничне швидкодію і необхідність складання карти прошивки ПЗУ з мікропрограмами, часто досить складними. Найбільш поширена структура мікропрограмного автомата (Малюнок 1.4.1) включає в себе всього лише три елементи: ПЗУ, регістр, що спрацьовує по фронту, і тактовий генератор. Малюнок 1.4.1 - Структура мікропрограмного автомата ПЗУ має ( ) Адресних розрядів і N розрядів даних. Регістр застосовується з кількістю розрядів ( ). Розряди даних ПЗУ записуються в реєстр по позитивному фронту тактового сигналу з генератора. Частина цих розрядів (М) використовується для утворення адреси ПЗУ, інша частина ( ) Служить для формування вихідних сигналів. Вхідні сигнали (L) надходять на входи регістра і використовуються спільно з частиною вихідних розрядів ПЗУ для отримання адреси ПЗУ. Схема працює в такий спосіб. У кожному такті ПЗУ видає код даних, тим самим визначаючи не тільки стан вихідних сигналів схеми, а й адресу ПЗУ, який встановиться в наступному такті (після наступного позитивного фронту тактового сигналу). На цей наступну адресу впливають також і вхідні сигнали. Тобто, на відміну від формувача послідовності сигналів, розглянутого в попередньому розділі, в даному випадку адреси можуть перебиратися не тільки послідовно (за допомогою лічильника), але і в довільному порядку, який визначається прошивкою ПЗУ, званої мікропрограмою. Для забезпечення правильної роботи необхідно забезпечити, щоб за один період тактового сигналу повинні встигнути спрацювати регістр і ПЗУ. Інакше кажучи, сума затримки регістра і затримки вибірки адреси ПЗУ не повинна перевищувати періоду тактового сигналу. 1.5 Код Манчестер-II Код Манчестер-II широко використовується при передачі сигналів на великі відстані, зокрема, в локальних мережах. Суть манчестерського кодування ілюструється малюнком 1.5.1. Вхідний сигнал являє собою послідовність біт рівної тривалості. У кожному такті передається один біт інформації. Манчестерський код замінює одиничний інформаційний біт на негативний перехід в центрі бітового інтервалу, а нульовий інформаційний біт - на позитивний перехід в центрі бітового інтервалу. Таким чином, у центрі кожного бітового інтервалу сигналу в манчестерському коді обов'язково є фронт (позитивний або негативний), який може бути використаний приймачем цього сигналу для синхронізації прийому кожного інформаційного біта. Тому манчестерський код називається самосинхронизирующийся кодом. Малюнок 1.5.1 - Манчестерське кодування 1.6 Протокол передачі даних Набір правил, за яким виконується передача інформації між двома пристроями, називається протоколом передачі даних. Грамотно розроблений протокол передачі даних може істотно спростити пристрій. Для правильного декодування манчестерського коду протокол повинен містити наступну інформацію про переданих даних: частота (або період) манчестерського коду; кількість переданих даних (бітів) за один цикл передачі; напрямок передачі даних (від молодших розрядів вхідного паралельного коду до старших або навпаки); біт синхронізації (необхідний для активації роботи декодера, оскільки останній перебуває у стані очікування до моменту отримання байта інформації). Розроблений протокол передачі даних представлений в таблиці 1.6.1. Таблиця 1.6.1 - Протокол передачі даних Параметр | Значення | Частота манчестерського коду | 1 Гц | Розмір переданого пакета даних | 8 Біт | Напрямок передачі даних | Від молодших розрядів до старших | Біт синхронізації | "0", молодший розряд переданого коду |
2 СТРУКТУРНА СХЕМА ПРИСТРОЇ Структурна схема розробляється пристрою представлена на малюнку 2.1. Рисунок 2.1 - Структура кодувальника манчестерського коду Генератор тактового сигналу являє собою пристрій, що генерує сигнал, що управляє (CLK), який визначає момент виконання елементом або вузлом його функції. Приклад реалізації тактового генератора з використанням двох інверторів (у нестандартному включенні) представлений на малюнку 2.2. Малюнок 2.2 - Приклад реалізації тактового генератора на інверторах Період тактового сигналу на виході генератора визначається постійною часу RC-ланцюжка, що дорівнює добутку опору одного з резисторів ( ) На ємність конденсатора . Тому що необхідно, щоб пристрій працював на частоті 1 Гц, то ємність конденсатора , Наприклад, може дорівнювати 2мФ, а значення опорів резисторів R1 і R2 по 500 Ом. У цьому пристрої тактовий генератор в основному використовується для синхронізації роботи мікропрограмного автомата, який власне і виконує кодування вхідного коду. Пристрої введення представляють собою набір DIP-перемикачів ВДМ1-8, за допомогою яких формується передається восьмирозрядний код і тактильну кнопку ТС-0403, яка запускає цикл передачі будовою одного байта інформації. Після завершення передачі даних пристрій переходить в стан очікування ініціалізації наступного циклу передачі даних (наступного натискання тактильної кнопки). Блок стробування передається коду являє собою паралельний регістр К555ІР27, що спрацьовує по фронту. По натисненню кнопки тактильної код з DIP-перемикачів замикається в регістр. Таким чином, є можливість формувати наступний байт інформації на вході пристрою, ще до завершення передачі поточного байта інформації. Манчестерське кодування (Підрозділ 1.5) передбачає подання вхідного (передається) коду в послідовному вигляді. Для виконання цієї функції призначений блок перетворення паралельного коду в послідовний, який реалізовано у вигляді восьмиканального мультиплексора К155КП7. Управління роботою мультиплексора (вибір номера каналу) здійснюється за допомогою вхідного коду адреси. Вхідний код адреси формує мікропрограмних автоматів (останній виконує перебір адрес мультиплексора від 0 до 7). Мікропрограмних автоматів (разом з мультиплексором, яким він управляє) представлений на малюнку 2.3. Основним завданням мікропрограмного автомата є кодування вхідного послідовного коду в манчестерський. Малюнок 2.3 - мікропрограмних автоматів для кодування Манчестер-II Як видно з малюнка 2.3 регістр, що входить до складу мікропрограмного автомата стробирующий дані по позитивному фронті сигналу CLK. Таким чином, сигнал CLK управляє роботою мікропрограмного автомата (якщо CLK не змінюється в часі, то автомат знаходиться у режим стані). Коли цикл передачі даних завершено, автомат зводить прапор STOP (активний рівень "0"). Для управління роботою автомата (Малюнок 2.3) розроблено блок управління мікропрограмним автоматом (Малюнок 2.4), який управляє проходженням сигналу CLK з його входу на вихід (при подачі на вхід сигналу START сигнал CLK проходить на вихід; при подачі STOP - на виході "0" ). Малюнок 2.4 - Блок управління мікропрограмним автоматом Мікропрограма, що виконує кодування вхідного сигналу в манчестерський код і керування мультиплексором представлена в таблиці 2.2. Мікропрограма, представлена в таблиці 2.2 досить проста, тому детально розглядатися не буде. Таблиця 2.2 - Мікропрограма кодувальника манчестерського коду Адреса ПЗУ | Дані ПЗУ | Коментар | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Вх. | Адреса | MS | Вих. | Сл. адреса |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Кодування SYNC біта | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
|